#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<unistd.h>

int g_val = 100;

int main()
{
    printf("父进程开始运行, pid:%d\n", getppid());
    pid_t id = fork();
    if(id < 0)
    {
        perror("fork fail");
        return 1;
    }
    else if(id == 0)
    {
        printf("我是一个子进程, 我的pid：%d, 我的父进程pid：%d, g_val:%d\n", getpid(), getppid(), g_val);
        sleep(5);

        // child
        while(1)
        {
            sleep(1);
            printf("子进程改变量：%d->%d\n", g_val, g_val+10);
            g_val += 10;
            printf("我是一个子进程, 我的pid: %d, 我父进程的pid：%d\n", getpid(), getppid());
        }
    }
    else
    {
        // father 
        while(1)
        {
            sleep(1);
            printf("我是一个父进程, 我的pid: %d, 我父进程的pid：%d, gval:%d\n", getpid(), getppid(), g_val);
        }
    }
    printf("进程开始运行, pid:%d\n", getpid());

    //chdir("/home/zyt");
    //fopen("hello.txt","a");
    //while(1)
    //{
    //    sleep(1);
    //    printf("这是一个进程，我的pid：%d, 我的父进程pid:%d\n", getpid(), getppid());
    //}
    return 0;
}
